# -*- coding:utf-8 -*-


import csv
import re


"""
整合安谱混标数据
"""

sourceFile = "医药标准品_中国药典标准品__混标"
targetFile = sourceFile + "temp"
lineNum = 17  # 中文名称/NAME*在list中的索引号 对应excel中[R]列
# 遍历文件
with open("./" + sourceFile + ".csv", "r", encoding="utf-8-sig", newline="") as f_s:
    with open("./" + targetFile + ".csv", "a+", encoding="utf-8-sig", newline="") as f_t:
        reader = csv.reader(f_s)
        for line in reader:
            item_list = []
            # 如果中文名称列 cas列是空，则不保存
            if len(line[lineNum]) > 0 and len(line[lineNum + 1]) > 0:
                # 如果列值含有"中文名称/NAME*"，则直接保存该行数据
                if line[lineNum - 1].find("序号") < 0:
                    update_value = line[lineNum]
                    flag = True
                    # 遍历行中的每列数据
                    for index, value in enumerate(line):
                        # 处理打乱的英文。与中文名称列进行拼接
                        if index >= lineNum + 1:
                            eng_parm = re.findall(r'[a-zA-Z]+', value)
                            chn_parm = re.findall(r'.*?([\u4E00-\u9FA5]+).*?', value)
                            num_parm = re.findall(r'[0-9]+', value)
                            if (len(eng_parm) > 0 or len(chn_parm) > 0) and flag is True:
                                update_value += " " + value
                            elif len(num_parm) > 0:
                                flag = False
                                item_list.append(value)
                            else:
                                item_list.append(value)
                        else:
                            item_list.append(value)

                    if len(item_list) > lineNum:
                        # 更改数据
                        item_list[lineNum] = update_value
                    csv_writer = csv.writer(f_t)
                    csv_writer.writerow(item_list)
                # else:
                #     csv_writer = csv.writer(f_t)
                #     csv_writer.writerow(line)

